#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
#include <string.h>


//imitate strcpy
//char* my_strcpy(char* destination, const char* source)
//{
//	assert(destination && source);
//	char* ret = destination;
//	if( (strlen(destination) - strlen(source)) < 0)
//	{
//		return NULL;
//	}
//	while (*source)
//	{
//		*destination = *source;
//		destination++;
//		source++;
//	}
//	return ret;
//}
//int main()
//{
//	char arr1[10] = "########";
//	char arr2[10] = "fg";
//	char* p = my_strcpy(arr1, arr2);
//	printf("%s\n", p);
//}

//inimate strcmp
//int my_strcmp(char* p1, char* p2)
//{
//	assert(p1 && p2);
//	
//	while (*p1 && *p2)
//	{
//		if (*p1++ > *p2++)
//		{
//			return 1;
//		}
//		if (*p1++ < *p2++)
//		{
//			return -1;
//		}
//	}
//	return *p1 - *p2;
//	/*if (*p1 == 0 && *p2 == 0)
//	{
//		return 0;
//	}
//	else if (*p1)
//	{
//		return 1;
//	}
//	else
//		return -1;*/
//}
//int main()
//{
//	char arr1[20] = { 0 };
//	char arr2[20] = { 0 };
//	scanf("%s%s", &arr1, &arr2);
//	printf("%d", my_strcmp(arr1, arr2));
//}

////beauty
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//int com(void* p1, void* p2)
//{
//     return (strcmp((int*)p2, (int*)p1)); //accordance the number it appeared,descending
//}
//int main() {
//    int N = 0;  //line number 
//    int map[128] = { 0 }; //store character ASCII to compute the number it appear 
//    int count = 26; //it should be descending,the largest number multiply 26,second multiply 25... 
//    int i = 0; //record the number of character strings 
//    int j = 0; //index to search in each character
//    char* tmp = NULL; //record the place of the character in map
//    int ans[10000] = { 0 }; //store the ans number ,finally printf
//    char* name[1000];//store character string
//    while (scanf("%d", &N) != EOF)
//    {
//        for (i = 0; i < N; i++)
//        {
//            name[i] = malloc(sizeof(char) * 10000);
//            if (!name[i])
//            {
//                return -1;
//            }
//            scanf("%s", name[i]);
//        }
//
//        for (i = 0; i < N; i++)
//        {
//            memset(map, 0, sizeof(map));
//            count = 26;
//            tmp = name[i];
//            int len = strlen(tmp);
//            for (j = 0; j < len; j++)
//            {
//                map[tmp[j]]++;
//            }
//            qsort(map, 128, sizeof(int), com);
//            for (j = 0; j < 26; j++)
//            {
//                ans[i] += (count * map[j]);
//                count--;
//            }
//            free(name[i]); //Don't forget!!
//            name[i] = NULL;
//        }
//        for (i = 0; i < N; i++)
//        {
//            printf("%d\n", ans[i]);
//        }
//    }
//    return 0;
//}